Web services protocols described by XML lack well-defined semantic information and interactive expression of Web services. Therefore, they cannot satisfy the requirements of automatic discovery, implementation, synthesis, monitoring and recovery of Web services. An XML based language which contains semantic information to describe Web services is required, so that Web services can understand each other on respective contents, functions and attributes. A Semantic Web just meets this demand to describe Web services. It is the extension of current Web with semantic information that can be processed by computers. In a semantic Web, all sorts of resources are manually annotated with diversified specific semantic information which can be distinguished, identified, automatically interpreted, exchanged and processed by computers.
In recent years, with the development of semantic Web technology, there have been a large number of domain ontologies, such as the medical ontology UMLS, the traditional Chinese medical ontology TCMLS and so on. Borrowing the idea of semantic Web, the semantic relations between domain concepts have been defined by constructing the ontology to solve the lack of unified semantic content of Web services and other issues. Additionally, the semantic-based search technology is adopted to discover and locate Web services to achieve win-win results between users and service providers. Integrating Semantic Web with Web services evolves into Semantic Web services. In Web services, the ontology domain model is utilized efficiently to implement conceptual modeling of services. It can guide the design of Web services applications. Semantic Web services aim to describe functions and content of Web services with an explicit language which can be understood by computers, and to improve performance and robustness of operations of the existing Web services, such as the discovery and invocation of Web services. Semantic Web services can provide effective support for automation of discovery, implementation, interpretation and composition of Web services to achieve interoperability and seamless integration of heterogeneous systems.
The prerequisite for the discovery of semantic Web services is the semantic description of required Web services from some requesters. Simultaneously, existing Web services should also be described semantically. Nowadays, there are many methods to semantically describe Web services, such as OWL-S, WSDL-S, SWSL and so on. In the above methods, the description of Web services is divided into functional and non-functional parts. For the functional information of services (Input, Output, Precondition, Effect of Web services), the basic idea of semantic description is to firstly express the semantic information in domain with ontology and then describe the functional information of Web services with concepts of ontology. For the non-functional information of Web services (such as contact information of service providers, overall function of services, etc.), the natural language is generally adopted for its semantic description at this stage.
Traditionally, the exact matching between a released service and a requested service must satisfy the following two conditions:
(1) The service output can cover the output requested by the user; In other words, the required output of the user must be able to be obtained through service invocation.
(2) The input requested by the user can satisfy the service input; In other words, the required input for normal invocation of the service must be provided within the user request.
However, while making a request, the user cannot know what sorts of services already exist, and while customizing services, it cannot be expected what kind of requests will be proposed. Therefore, it is just the most ideal state that the user request can match some service completely. In reality, the exact matching does not exist most of the time. Hence service matching algorithm is needed to calculate the similarity of released services set by the service description (including functional description and non-functional description) of requested service and released services, and then it can output services whose calculating value is greater than a given threshold.